/**规格数据管理 */
import { defineStore } from "pinia"
import {
    getSpecsPage,
    getSpecsTotal,
    addSpecs,
    delSpecs,
    editSpecs
} from "../api/specsApi"
import { ElMessage } from "element-plus";

// 声明store
const useSpecStore = defineStore("specs", {
    state: () => {
        return {
            // 页码
            page: 1,
            // 单页展示数据
            size: 10,
            // 总数
            total: 0,
            // 数据
            allSpecsList: []
        }
    },
    getters: {

    },
    actions: {
        GET_SPECSLIST(list) {
            this.allSpecsList = list
        },
        CHANGE_PAGE(page) {
            this.page = page
        },
        CHANGE_SIZE(size) {
            this.size = size
        },
        CHANGE_TOTAL(total) {
            this.total = total
        },
        // 获取数据列表
        getSpecsListAction() {
            getSpecsPage(this.page, this.size).then((res) => {
                console.log('获取商品规格数据列表', res)
                if (res.code === 200) {
                    //    提交数据
                    this.GET_SPECSLIST(res.list)
                }
            })
        },
        // 获取总数
        getSpecsTotalAction() {
            getSpecsTotal().then((res) => {
                console.log('获取商品规格总数', res)
                if (res.code === 200) {
                    this.CHANGE_TOTAL(res.list[0].total)
                }
            })
        },
        // 增加数据
        addSpecsAction(specsForm) {
            addSpecs(specsForm).then((res) => {
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "新增规格成功"
                    })
                    //   刷新重新请求数据
                    this.getSpecsListAction()
                    this.getSpecsTotalAction()
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
        // 编辑数据
        editSpecsAction(specsForm) {
            editSpecs(specsForm).then((res) => {
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "编辑规格成功"
                    })
                    //   刷新重新请求数据
                    this.getSpecsListAction()
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
        // 删除数据
        delSpecsAction(id) {
            delSpecs(id).then((res) => {
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "规格删除成功"
                    })
                    //   刷新重新请求数据
                    this.getSpecsListAction()
                    this.getSpecsTotalAction()
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
    }
})
// 导出
export default useSpecStore